home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Games Collection 1 / software vault.zip / software vault / CDR10 / YICN23.ZIP / DEMO / BEETDEMO.CPP < prev    next >
C/C++ Source or Header  |  1993-02-27  |  4KB  |  106 lines

  1. #include "xlib.h"
  2. #include "xtext.h"
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include <bios.h>
  7. #include <alloc.h>
  8. #include "yakPal.h"
  9. #include "platform.h"
  10. #include "sb1misc.h"
  11. #include "yakkeys.h"
  12. #include "yakfont.h"
  13. #include "xrect.h"
  14. //extern yakMouse mouse;
  15.  
  16. extern yakLib myYakLib;
  17. extern yakFont myYakFont;
  18. extern yakLib sb1Lib;
  19. grumPlayer player1;
  20. extern player * firstPlayer;
  21.  
  22. void getKeys(void)
  23. {
  24.   if (keyboard.keys[yakKeyboard::upArrow])
  25.     player1.go(platformBeast::jump);
  26.   if (keyboard.keys[yakKeyboard::leftArrow])
  27.     player1.go(platformBeast::goLeft);
  28.   if (keyboard.keys[yakKeyboard::rightArrow])
  29.     player1.go(platformBeast::goRight);
  30.   if (keyboard.keys[yakKeyboard::spaceBar])
  31.   {
  32.     keyboard.keys[yakKeyboard::spaceBar] = 0;
  33.     player1.fireMissile();
  34.   }
  35. }
  36.  
  37.  
  38. void beetDemo(void)
  39. {
  40.   keyboard.install();
  41.   firstPlayer = &player1;
  42.   randomize();
  43.   x_set_mode(0, 435);
  44.   x_set_splitscreen(150);
  45.   x_set_doublebuffer(240);
  46.   x_text_init();
  47.   myYakFont.use();
  48.   yakPalette myYakPalette("standard.ypl", &myYakLib);
  49.   myYakPalette.put();
  50.   loadIcons();
  51.   animap backgroundMap(2, 48, 32, 32);
  52.   backgroundMap.loadIcon(0, "swall", &myYakLib);
  53.   backgroundMap.loadIcon(1, "sfloor", &myYakLib);
  54.   backgroundMap.randomize();
  55.   player1.assignIcon(PLAYER, factor::eightFace);
  56.   player1.mymap = &backgroundMap;
  57.   player1.squareX = 23;
  58.   player1.squareY = 23;
  59.   player1.put(0,0);
  60.   blob *myBlob[10];
  61.   backgroundMap.randomize();
  62.   for (int blobCounter = 0; blobCounter < 10; ++blobCounter)
  63.   {
  64.     myBlob[blobCounter] = new blob;
  65.     myBlob[blobCounter]->mymap = &backgroundMap;
  66.     myBlob[blobCounter]->put(random(25), random(25));
  67.   }
  68.   backgroundMap.showXY(player1.mapX-4,player1.mapY-2, 96, 96, 8,4, HiddenPageOffs);
  69.   x_page_flip(48 + player1.squareX, 48+player1.squareY);
  70.   backgroundMap.showXY(player1.mapX-4,player1.mapY-2, 96, 96, 8,4, HiddenPageOffs);
  71.   int oldMapX = player1.mapX, oldMapY = player1.mapY;
  72.   drawBorder();
  73.   while (!keyboard.keys[yakKeyboard::escape])
  74.   {
  75.     if ((oldMapX != player1.mapX) || (oldMapY != player1.mapY))
  76.       {
  77.         oldMapX = backgroundMap.lastMapX;
  78.         oldMapY = backgroundMap.lastMapY;
  79.         backgroundMap.smartRefresh(player1.mapX-4, player1.mapY-2, HiddenPageOffs);
  80.         x_page_flip(48 + player1.squareX, 48+player1.squareY);
  81.         x_cp_vid_rect(48,48,432,240,48,48,VisiblePageOffs, HiddenPageOffs, ScrnLogicalPixelWidth,ScrnLogicalPixelWidth);
  82.         oldMapX = player1.mapX; oldMapY = player1.mapY;
  83.         getKeys();
  84.         backgroundMap.advance();
  85.       }
  86.     else
  87.     {
  88.       backgroundMap.smartRefresh(player1.mapX-4, player1.mapY-2, HiddenPageOffs);
  89.       x_page_flip(48 + player1.squareX, 48+player1.squareY);
  90.       x_bgprintf(10,10,SplitScrnOffs,15,20,"MapX %d***Mapy %d    ", player1.mapX, player1.mapY);
  91.       x_bgprintf(10,20,SplitScrnOffs,15,20,"SquX %d***Squy %d    ", player1.squareX, player1.squareY);
  92.       x_bgprintf(10,30,SplitScrnOffs,15,20,"Hit Points:    %d    ", player1.hitPoints);
  93.       getKeys();
  94.       backgroundMap.advance();
  95.     }
  96.     if ((player1.mymap->mapData[player1.mapX][player1.mapY].myTerrainType == 1) && (player1.squareY == FLOORHEIGHT))
  97.       player1.xMomentum = 0;
  98.   }
  99.   for (blobCounter = 0; blobCounter < 10; ++blobCounter)
  100.     delete myBlob[blobCounter];
  101.   keyboard.remove();
  102.   x_text_mode();
  103.   factor::clearFactor(0);
  104.   factor::clearFactor(1);
  105.   factor::clearFactor(2);
  106. }